function User() {
	// Private properties
	var _fbToken;
	var _fbTokenExpiresOn;
	var _fbID;
	var _email;
	var _username;
	var _firstName;
	var _lastName;
	var _timezone;
	var _roles = [];

	// Define our getters and setters
	this.addProperties( {
		fbToken : {
			get : function() {
				return _fbToken;
			},
			set : function(val) {
				_fbToken = val;
				this.Notify(val, "fbToken");
			}
		},
		fbTokenExpiresOn : {
			get : function() {
				return _fbTokenExpiresOn;
			},
			set : function(val) {
				_fbTokenExpiresOn = val;
				this.Notify(val, "fbTokenExpiresOn");
			}
		},
		fbID : {
			get : function() {
				return _fbID;
			},
			set : function(val) {
				_fbID = val;
				this.Notify(val, "fbID");
			}
		},
		roles : {
			get : function() {
				return _roles;
			},
			set : function(val) {
				_roles = val;
				this.Notify(val, "roles");
			}
		},
		email : {
			get : function() {
				return _email;
			},
			set : function(val) {
				_email = val;
				this.Notify(val, "email");
			}
		},
		username : {
			get : function() {
				return _username;
			},
			set : function(val) {
				_username = val;
				this.Notify(val, "username");
			}
		},
		firstName : {
			get : function() {
				return _firstName;
			},
			set : function(val) {
				_firstName = val;
				this.Notify(val, "firstName");
			}
		},
		lastName : {
			get : function() {
				return _lastName;
			},
			set : function(val) {
				_lastName = val;
				this.Notify(val, "lastName");
			}
		},
		timezone : {
			get : function() {
				return _timezone;
			},
			set : function(val) {
				_timezone = val;
				this.Notify(val, "timezone");
			}
		}

	})
}

User.prototype = new Subject();